package com.jmlee.service;

import com.jmlee.pojo.Rider;
import com.jmlee.vo.AddressByOrderVo;
import com.jmlee.vo.ChangePwdVo;
import com.jmlee.vo.GetRiderVo;
import org.springframework.web.bind.annotation.RequestBody;

import javax.servlet.http.HttpServletRequest;
import java.util.List;

/**
 * @author： 郑锦涛
 * @data： 2021/3/8 16:22
 * @version：1.0
 * @描述： 骑手service接口
 */
public interface RiderService {

    /**
     * 骑手登录 --通过账号密码
     * @param rider
     * @return  Rider
     */
    Rider riderLogin(Rider rider);

    /**
     * 获取订单列表
     * @param getRiderVo
     * @return
     */
    List<AddressByOrderVo> getOrderAddress(GetRiderVo getRiderVo);

    /**
     * 修改骑手信息
     * @param rider
     * @return
     */
    Rider changeRiderInfo(Rider rider);

    /**
     * 修改密码
     *
     * @param changePwdVo 修改的数据
     * @param rider       查询的数据
     * @return
     */
    Rider changePwd(ChangePwdVo changePwdVo, Rider rider);

    /**
     *  接单
     * @param getRiderVo
     * @return
     */
    List<AddressByOrderVo> takeOrder(GetRiderVo getRiderVo);

    /**
     *  确认收货
     * @param getRiderVo
     * @return
     */
    List<AddressByOrderVo> pickUp(GetRiderVo getRiderVo);

    /**
     *  确认送达
     * @param getRiderVo
     * @return
     */
    List<AddressByOrderVo> orderOver(GetRiderVo getRiderVo);

    /**
     * 获取某一订单的相关坐标位置
     * @param getRiderVo
     * @return
     */
    AddressByOrderVo goEarth(GetRiderVo getRiderVo);

    /**
     * 上传身份证信息
     * @param rider
     * @return
     */
    boolean updateIdCard(Rider rider);

    /**
     * 获取修改后的骑手身份信息
     * @param rider
     * @return
     */
    Rider getChangeInfo(Rider rider);

    /**
     * 使用微信openid注册
     * @param rider
     * @return
     */
    Rider regByOpenid(Rider rider);

    /**
     * 骑手注册
     * @param rider
     * @return
     */
    Integer regByUsername(Rider rider);

    /**
     *  查看全部订单          选择查询订单 -- 包括已完成/未完成/全部
     * @param getRiderVo    传入用户名和状态
     * @return
     */
    public List<AddressByOrderVo> chooseOrder(GetRiderVo getRiderVo);

}
